#include<stdio.h>

int main()
{

	//算数运算符
		//数字进行计算
		//通用细节：整数运算结果一定是整数,小数计算结果一定是小数
		//			整数和小数计算结果一定是小数
		//			小数直接参与计算结果可能是不精确的
		//除法的细节：不能除以0
		//取余的计算：运算数据必须全是整数，余数的正负和第一个数字保持一致
		//			不能除以0
	printf("%d\n", 15 + 16);
	printf("%d\n", 15 - 16);
	printf("%d\n", 15 * 16);
	printf("%d\n", 15 / 6);
	printf("%lf\n",15.0/6.0);
	printf("%d\n", 15 % 16);
	printf("%f\n", 15.0 + 16);
	printf("%d\n", -15 % 16);

	int a = 15;
	int b = 16;
	printf("%d\n", a + b);

	//数据拆分
	//1234拆分
	int a1 = 1234;
	int ge, shi, bai, qian;
	ge = a1 % 10;
	shi = a1 / 10 % 10;
	bai = a1 / 100 % 10;
	qian = a1 / 1000;
	printf("个位数是：%d\n", ge);
	printf("十位数是：%d\n", shi);
	printf("百位数是：%d\n", bai);
	printf("千位数是：%d\n", qian);

	//加法的两种情况
		//数字相加
		//数字类型不一样不能直接运算，但是取值范围小的数据类型可能会自动升值为取值范围大的数据类型
		//short和char数据类型在计算前先会转化为int
		//各类型取值范围：
				//char < short < int < long < long long < float < double
	int i = 10;
	long n = 100L;
	double m = 20.0;
	double result = i + n + m;
	printf("%lf\n", result);


		//强制转换
		//如果把取值范围大的，赋值给取值范围小的，就需要进行强制转换
		//格式：目标数据类型 变量名 = (目标数据类型)被强转的数据；
		/*int b = 10;
		short i = (short)b;*/
		//会导致数据计算错误 
	short s1 = 65535;
	short s2 = 65535;
	short result1 = s1 + s2;
	printf("%d\n", (short)s1 + (short)s2);
	printf("%d\n", s1 + (short)s2);
	printf("%d\n", (short)s1 + s2);
		//（）的位置不影响结果，但是代码阅读建议都写；

		//字符相加
		//字符会根据ASCII表转化为int数据
	int i1 = 1;
	char j = 'c';
	int result2 = i1 + j;
	printf("%d\n", result2);
	printf("%c\n", j);
	printf("%d\n", j);








	return	0;




}